# clear():用于清空字典中的所有键值对，使字典变为空字典
def dict_clear():
    my_dict = {'name': 'cendy', 'age': 18}
    print(my_dict)
    print(my_dict.clear())  # None


# copy():用于创建字典的一个副本，创建的副本与原字典不相等
# 直接使用=赋值只是创建了一个指向原字典的引用,而不是真正的副本
def dict_copy():
    try:
        my_dict = {'name': 'cendy', 'age': 18, 'sex': '女','addr': '上海'}
        # 直接使用=赋值只是创建了一个指向原字典的引用,而不是真正的副本
        my_dict_1 = my_dict
        print('my_dict:', my_dict)
        print('my_dict_1:', my_dict_1)
        print('my_dict_1 等于 my_dict:', my_dict_1 is my_dict)
        # 创建字典的副本
        my_dict_copy = my_dict.copy()
        print('my_dict_copy:', my_dict_copy)
        print('my_dict_copy 不等于 my_dict:', my_dict_copy is not my_dict)
    except Exception as e:
        print('程序出错,抛出异常：',  e)


# update()：用于将另一个字典中的键值对添加到当前字典中，如果有相同的健，则更新对应的值
def dict_update():
    my_dict_1 = {'name': 'cendy', 'age': 18, 'addr': '上海'}
    my_dict_update_1 = {'city': '上海', 'phone': '123456789'}
    print('初始字典my_dict_1：', my_dict_1)
    print('初始字典my_dict_update_1:', my_dict_update_1)
    my_dict_1.update(my_dict_update_1)
    print('更新后的字典my_dict_1：', my_dict_1)
    print('-----------分割线--------------')
    my_dict_2 = {'name': 'cendy', 'age': 18, 'addr': '上海'}
    my_dict_update_2 = {'city': '上海', 'age': 25}
    print('初始字典my_dict_2：', my_dict_2)
    print('初始字典my_dict_update_2:', my_dict_update_2)
    my_dict_2.update(my_dict_update_2)
    print('更新后的字典my_dict_2：', my_dict_2)    # {'name': 'cendy', 'age': 25, 'addr': '上海', 'city': '上海'}


if __name__ == '__main__':
    # dict_clear()
    # dict_copy()
    dict_update()
